﻿using System.ComponentModel.DataAnnotations;

namespace EMC.VISITOR.Application;

/// <summary>
/// 訪客記錄基础输入参数
/// </summary>
public partial class VisitLogBaseInput
{
    public string StaffConfirm { get; set; }
    /// <summary>
    /// 訪客類型
    /// </summary>
    public virtual VisitorType? Type { get; set; }

    public virtual List<VisitorType?> TypeList { get; set; }
    /// <summary>
    /// 訪客手機
    /// </summary>
    public virtual string? Vphone { get; set; }

    /// <summary>
    /// 訪客姓名
    /// </summary>
    public virtual string? Visitor { get; set; }

    /// <summary>
    /// 訪客性別
    /// </summary>
    public virtual SexType? Sex { get; set; }

    public virtual List<SexType?> SexList { get; set; }
    /// <summary>
    /// 訪客身份證
    /// </summary>
    public virtual string? IdCard { get; set; }
    public virtual string? IdCardImg { get; set; }
    /// <summary>
    /// 預約來訪時間
    /// </summary>
    public virtual DateTime? VisitTime { get; set; }

    /// <summary>
    /// 預約結束時間
    /// </summary>
    public virtual DateTime? VendTime { get; set; }

    /// <summary>
    /// 出入門禁點
    /// </summary>
    public virtual string? VisitSite { get; set; }

    /// <summary>
    /// 來訪單位
    /// </summary>
    public virtual string? Vcompany { get; set; }

    /// <summary>
    /// 訪客人數
    /// </summary>
    public virtual long? Vnum { get; set; }

    /// <summary>
    /// 拜訪事由
    /// </summary>
    public virtual string? Vreason { get; set; }

    /// <summary>
    /// 人臉頭像
    /// </summary>
    public virtual string? Vimg { get; set; }

    /// <summary>
    /// 自带货物照片
    /// </summary>
    public virtual string? HwImg { get; set; }
    /// <summary>
    /// 作業區域
    /// </summary>
    public virtual string? VisitArea { get; set; }

    /// <summary>
    /// 證件照片
    /// </summary>
    public virtual string? DocImg { get; set; }

    /// <summary>
    /// 車牌號
    /// </summary>
    public virtual string? CarNo { get; set; }

    /// <summary>
    /// 物品信息
    /// </summary>
    public virtual string? GoodsInfo { get; set; }

    public virtual List<long?> DeptIdList { get; set; }
    /// <summary>
    /// 部門
    /// </summary>
    public virtual long? DeptId { get; set; }

    public virtual List<long?> LeaderIdList { get; set; }
    /// <summary>
    /// 被訪人姓名
    /// </summary>
    public virtual long? LeaderId { get; set; }

    /// <summary>
    /// 被訪人姓名
    /// </summary>
    public virtual string? Staff { get; set; }

    /// <summary>
    /// 被訪人手機
    /// </summary>
    public virtual string? Iphone { get; set; }

    /// <summary>
    /// 狀態
    /// </summary>
    public virtual ProcessStatus? Status { get; set; }
    public virtual long? IsBeShared { get; set; }

    public virtual string? Position { get; set; }
    public virtual List<ProcessStatus?> StatusList { get; set; }
    /// <summary>
    /// 創建時間
    /// </summary>
    public virtual DateTime? CreateTime { get; set; }

    /// <summary>
    /// 更新時間
    /// </summary>
    public virtual DateTime? UpdateTime { get; set; }

    public virtual List<long?> CreateUserIdList { get; set; }
    /// <summary>
    /// 創建人
    /// </summary>
    public virtual long? CreateUserId { get; set; }

    public virtual List<long?> UpdateUserIdList { get; set; }
    /// <summary>
    /// 修改人
    /// </summary>
    public virtual long? UpdateUserId { get; set; }

    /// <summary>
    /// 施工签字照片
    /// </summary>
    public virtual string haImg { get; set; }
}

/// <summary>
/// 訪客記錄分页查询输入参数
/// </summary>
public partial class VisitLogInput : BasePageInput
{
    public bool? todayVis { get; set; }
    public long? IsBeShared { get; set; }
    /// <summary>
    /// 关键字查询
    /// </summary>
    public string SearchKey { get; set; }

    public string Vreason { get; set; }
    /// <summary>
    /// 訪客類型
    /// </summary>
    public VisitorType? Type { get; set; }

    public virtual List<VisitorType?> TypeList { get; set; }
    /// <summary>
    /// 訪客手機
    /// </summary>
    public string? Vphone { get; set; }

    /// <summary>
    /// 訪客姓名
    /// </summary>
    public string? Visitor { get; set; }

    /// <summary>
    /// 訪客身份證
    /// </summary>
    public string? IdCard { get; set; }

    public string Vcompany { get; set; }

    public string CarNo { get; set; }
    /// <summary>
    /// 預約來訪時間
    /// </summary>
    public DateTime? VisitTime { get; set; }

    /// <summary>
    /// 預約來訪時間范围
    /// </summary>
    public List<DateTime?> VisitTimeRange { get; set; }
    /// <summary>
    /// 預約結束時間
    /// </summary>
    public DateTime? VendTime { get; set; }

    /// <summary>
    /// 預約結束時間范围
    /// </summary>
    public List<DateTime?> VendTimeRange { get; set; }
    /// <summary>
    /// 出入門禁點
    /// </summary>
    public string? VisitSite { get; set; }

    public virtual List<long?> DeptIdList { get; set; }
    /// <summary>
    /// 部門
    /// </summary>
    public long? DeptId { get; set; }

    public virtual List<long?> LeaderIdList { get; set; }
    /// <summary>
    /// 被訪人姓名
    /// </summary>
    public long? LeaderId { get; set; }

    /// <summary>
    /// 被訪人姓名
    /// </summary>
    public string? Staff { get; set; }

    /// <summary>
    /// 狀態
    /// </summary>
    public ProcessStatus? Status { get; set; }

    public virtual List<ProcessStatus?> StatusList { get; set; }
}

/// <summary>
/// 訪客記錄增加输入参数
/// </summary>
public partial class AddVisitLogInput : VisitLogBaseInput
{
    /// <summary>
    /// 訪客類型
    /// </summary>
    [Required(ErrorMessage = "訪客類型不能为空")]
    public override VisitorType? Type { get; set; }



    [Required(ErrorMessage = "预约来访开始时间不能为空")]
    public override DateTime? VisitTime { get; set; }
    [Required(ErrorMessage = "预约来访结束时间不能为空")]
    public override DateTime? VendTime { get; set; }
  
}

/// <summary>
/// 訪客記錄删除输入参数
/// </summary>
public partial class DeleteVisitLogInput : BaseIdInput
{
}

/// <summary>
/// 訪客記錄更新输入参数
/// </summary>
public partial class UpdateVisitLogInput : VisitLogBaseInput
{
    /// <summary>
    /// Id
    /// </summary>
    [Required(ErrorMessage = "Id不能为空")]
    public long? Id { get; set; }

    /// <summary>
    /// 訪客類型
    /// </summary>
    [Required(ErrorMessage = "訪客類型不能为空")]
    public override VisitorType? Type { get; set; }


    [Required(ErrorMessage = "预约来访开始时间不能为空")]
    public override DateTime? VisitTime { get; set; }
    [Required(ErrorMessage = "预约来访结束时间不能为空")]
    public override DateTime? VendTime { get; set; }

}

/// <summary>
/// 訪客記錄主键查询输入参数
/// </summary>
public partial class QueryByIdVisitLogInput : DeleteVisitLogInput
{

}
